<?php

namespace Model;

class MovieFeedHandler{
	
	private $m_db = NULL;
        
    public function __construct(Database $db) {
            $this->m_db =$db;
    }
	
	//Hämtar ut filmer efter användarnamn
	public function GetMovieFeed($username){
		
		$sql = "SELECT * FROM movie WHERE m_username= '$username'";
		
        $stmt = $this->m_db->Select($sql);
                
        if ($stmt->bind_result($id, $name, $review, $rating, $userId, $username, $image ) == FALSE) {
                        throw new \Exception($this->mysqli->error);
        }

        $ret = new MovieArray();
			
		while ($stmt->fetch()) {
			$movie = new Movie($id, $name, $review, $rating, $userId, $username, $image);
            $ret->add($movie);
		}
                
        $stmt->close();
                
        return $ret;
	}
	
	//Hämtar ut användarens vänner
	public function GetFriends($userId){
			
		$sql = "SELECT m_username FROM friend WHERE m_userId = $userId";
        
        $stmt = $this->m_db->Select($sql);
                
        if ($stmt->bind_result($username) == FALSE) {
                throw new \Exception($this->mysqli->error);
        }

        while ($stmt->fetch()) {
        	$array[]=$username;
		}
		//om användaren inte har några vänner returneras false 
		if (!isset($array)) {
		 	return false;
		}
        
		$stmt->close();
		       
        return $array;
	}
	
	public static function Test(Database $db){
		
		$sut = new MovieFeedHandler($db);	
		//Test av GetMovieFeed
		$movieArray= $sut->GetMovieFeed("Stina");
		
		if (get_class($movieArray) != "Model\MovieArray") {
             echo "GetMovieFeed returnerar " . get_class($movieArray);
             return false;
        }
                
        //Test av GetFriends
        //Test med användare utan vänner, ska returnera false
        if ($sut->GetFriends(5)==true){
        	echo "Fel vid GetFriends";
        	return false;
        }
		//Test med användare med 2 vänner 
		$friendArray = $sut->GetFriends(7);
		
		if (count($friendArray) != 2) {
            echo "GetFriends returnerar fel antal vänner";
            return false;
        }
		
	 	return true; 
			
	}
}